Pivotal TrackerのAPIでPBIを検索してみる
Pivotal TrackerのAPIでPBIを検索してみました。
スクラムのプロジェクト管理にPivotal Trackerを使っています。 本記事では、Pivotal Trackerが提供するAPIを使って、PBIを検索してみました。
おすすめの方
- Pivotal TrackerのAPIを使いたい方
- Pivotal TrackerのAPIでPBIを検索したい方
Pivotal Trackerの状態を確認する
実験用のPivotal Trackerのプロジェクトには、次のPBIがあります。
Pivotal TrackerのAPIトークンを取得する
下記を参考にしてAPIトークンを取得します。
Pivotal TrackerのAPIで検索する
次のAPIを利用します。
利用できるキーワードは下記です。複数のキーワードを指定する場合は、半角空白で結合します(しばらく分からなかった)。
本記事ではPythonでAPIアクセスします。次の条件で検索します。
- PBIの種類: feature, bug, chore
- PBIの状態: unscheduled, unstarted(未着手、または、iceboxにあるPBI)
import json import urllib.parse import requests API_ENDPOINT = 'https://www.pivotaltracker.com/services/v5' TOKEN = 'you_token' PROJECT_ID = 'xxx' headers = { 'X-TrackerToken': TOKEN } def main(): result = search() # print(json.dumps(result, indent=2)) for item in result['stories']['stories']: print(item['name']) print('------') print(result['stories']['total_hits']) def search(): # わかりやすさ優先でListで書いてみる query = [ 'type:feature,bug,chore', 'state:unscheduled,unstarted', ] url_query = { # キーワードの区切りは半角空白 'query': ' '.join(query), } parameter = urllib.parse.urlencode(url_query) resp = requests.get(f'{API_ENDPOINT}/projects/{PROJECT_ID}/search?{parameter}', headers=headers) return resp.json() if __name__ == '__main__': main()
検索してみる
python app.py
次の結果になりました。バッチリですね。
警備員は、xxxの異常を電話で知りたい。なぜならすぐに駆けつけて解決したいからだ。(持ち越し用) 買い物客は、商品一覧ページに1秒未満で遷移したい。なぜなら検索が遅いと購入する気が無くなるからだ。 Lambdaで使っているPythonを3.6から3.8にしたい hogeしたとき、次の画面に進めなくなる CI/CDパイプラインを見直して改善する 管理者は、昨日のxxxの異常をメールで一覧で知りたい。なぜなら…… [TB 1h*2] zzzの動作検証をする 買い物客は、やっほーしたい Webアプリの「foo」ボタンを連打しまくると、LambdaでErrorが発生する ------ 9
さいごに
プロジェクトIDを変えて実験してみたところ、330件のPBIが取得できました。 API仕様にも最大取得件数や次ページなどの指定が無いので、全件取得できそうです。